package com.example.basic.web.service.pda;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.basic.web.model.notice.InNotice;
import com.example.basic.web.model.remains.RemainsInfo;
import com.example.basic.web.response.*;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 全局参数表 服务类
 * </p>
 *
 * @author zhangzq
 * @since 2023-12-08
 */
public interface PdaService {

    /**
     * 遗体列表
     *
     * @param searchParam 模糊搜索(拼音码,五笔码,名称)
     * @return
     */
    List<RemainsInfo> waitInList(String searchParam);

    /**
     * 绑定信息详情
     *
     * @param deviceCode    设备编码
     * @param remainsCode
     * @return
     */
    BindingInfoResponse bindingDetail(String deviceCode, String remainsCode);

    /**
     * 遗体信息绑定
     *
     * @param deviceCode 设备编码
     * @param remainsCode 遗体编码
     * @return
     */
    BindingInfoResponse binding(String deviceCode, String remainsCode);

    /**
     * 入库通知单列表
     *
     * @param queryPage
     * @param searchParam 模糊搜索(遗体名称，拼音码，五笔码)
     * @param type        类型，1-待发起，2-已发起
     * @return
     */
    IPage<PdaNoticeResponse> noticeList(Page<PdaNoticeResponse> queryPage, String searchParam, String type);

    /**
     * 绑定信息详情
     * @param deviceCode 设备编码
     * @param remainsCode 遗体编码
     * @param status 操作类型
     * @return
     */
    BindingInfoResponse judgeDocument(String deviceCode, String remainsCode, String status);

    /**
     * 完成任务
     * @param documentNo 单据号
     * @param remainsCode 遗体编码
     * @param status 操作类型
     * @return
     */
    Boolean finishInstruct(String documentNo, String remainsCode, String status) throws IOException;

    /**
     * 遗体信息详情
     * @param remainsCode
     * @return
     */
    BindingInfoResponse remainsInfo(String remainsCode);


    /**
     * 入库上架
     * @param inNotice
     * @return
     */
    Boolean inPharm(InNotice inNotice);

    /**
     * 担架板出库
     * @param deviceCode
     * @return
     */
    Boolean stretcherOut(String deviceCode) throws IOException;

    /**
     * 担架板入库
     * @param deviceCode
     * @return
     */
    Boolean stretcherIn(String deviceCode) throws IOException;

    /**
     * 临时接口
     * @param startAdress
     * @return
     * @throws IOException
     */
    void tempTest(String startAdress, String remainsCode);
}